﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PasswordGenerator
{
    /// <summary>
    /// Base class.
    /// This class cannot be instantiated.
    /// </summary>
    public abstract class PasswordRequirement
    {
        internal CharacterProfile profile;
        internal int Count;
    }

    public class UpperCase : PasswordRequirement
    {
        public UpperCase()
        {
            profile = new UpperCharacterProfile();
        }
    }

    public class LowerCase : PasswordRequirement
    {
        public LowerCase()
        {
            profile = new LowerCharacterProfile();
        }
    }

    public class Numeric : PasswordRequirement
    {
        public Numeric()
        {
            profile = new NumericCharacterProfile();
        }
    }

    public class SpecialCharacter : PasswordRequirement
    {
        public SpecialCharacter()
        {
            profile = new SpecialCharacterProfile();
        }
    }

    public class PasswordLength : PasswordRequirement
    {
        public int Length { get; set; }

        public PasswordLength(int Length)
        {
            this.Length = Length;
        }
    }
}
